/**
 * 空校验 null或""都返回true
 */
export const isEmpty = (value: any): boolean => {
    if ((typeof value === 'string')) {
        return !value || value.replace(/\s+/g, "") === ""
    } else {
        return (!value || JSON.stringify(value) === "{}" || value.length === 0);
    }
}
/**
 * 非空校验
 */
export const isNotEmpty = (obj: any) => {
    return !isEmpty(obj);
}

export const copyObj = (obj: any) => {
    if (isNotEmpty(obj)) {
        return JSON.parse(JSON.stringify(obj));
    }
}
/**
 * 使用递归将数组转为树形结构
 * 父ID属性为parent
 */
export const array2Tree = (array: any, parentId: number) => {
    if (isEmpty(array)) {
        return [];
    }
    const result = [];
    for (let i = 0; i < array.length; i++) {
        const c = array[i];
        // console.log(Number(c.parent), Number(parentId));
        if (Number(c.parent) === Number(parentId)) {
            result.push(c);

            // 递归查看当前节点对应的子节点
            const children = array2Tree(array, c.id);
            if (isNotEmpty(children)) {
                c.children = children;
            }
        }
    }
    return result;
}
/**
 * 随机生成[len]长度的[radix]进制数
 * @param len
 * @param radix 默认62
 * @returns {string}
 */
export const uuid = (len: number, radix = 62) => {
    const chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');
    const uuid = [];
    radix = radix || chars.length;

    for (let i = 0; i < len; i++) {
        uuid[i] = chars[0 | Math.random() * radix];
    }

    return uuid.join('');
}


